import pyautogui
import time
import pyperclip
def short_press(key='a', times=1, interval=0.1):
    """
    短按键盘按键
        :param key: 要按的键（字符或按键名称）
        :param times: 按键次数（默认1次）
        :param interval: 每次按键间隔秒数（默认0.5秒）
    """
    for _ in range(times):
        pyautogui.keyDown(key)
        time.sleep(interval)
        pyautogui.keyUp(key)

def long_press(key='a', duration=1):
    """
    长按键盘按键
        :param key: 要按的键（字符或按键名称）
        :param duration: 持续按住的时间（秒）
    """
    pyautogui.keyDown(key)
    time.sleep(duration)
    pyautogui.keyUp(key)

def press_hotkey(key1, key2):
    """
    模拟组合键（如Ctrl+A）
        :param hotkey: 要模拟的组合键（如'ctrl+a'）
    """
    pyautogui.hotkey(key1, key2)
def copy_text(text):
    """
    复制文本到剪贴板
        :param text: 要复制的文本
    """
    pyperclip.copy(text)

def mouse_drag(start_x, start_y, end_x, end_y, duration=0.3):
    """
    实现鼠标从起始坐标拖动到终止坐标的操作
        :param start_x: 起始坐标的 x 轴位置
        :param start_y: 起始坐标的 y 轴位置
        :param end_x: 终止坐标的 x 轴位置
        :param end_y: 终止坐标的 y 轴位置
        :param duration: 拖动操作持续的时间（秒），默认 0.5 秒
    """
    original_pos = pyautogui.position()
    pyautogui.moveTo(start_x, start_y)
    pyautogui.mouseDown()
    pyautogui.moveTo(end_x, end_y, duration=duration)
    time.sleep(duration)
    pyautogui.mouseUp()
    pyautogui.moveTo(original_pos)

def mouse_moveto(x, y, duration=0.3):
    """
    鼠标移动操作
        :param x: 目标坐标的 x 轴位置
        :param y: 目标坐标的 y 轴位置
        :param duration: 移动操作持续的时间（秒），默认 0.3 秒
    """
    pyautogui.moveTo(x, y, duration=duration)

def mouse_click(x, y, button='left', clicks=1, interval=0.2):
    """
    鼠标点击操作
        :param x: 鼠标点击的 x 轴位置
        :param y: 鼠标点击的 y 轴位置
        :param button: 鼠标按钮，'left' 表示左键，'right' 表示右键，'middle' 表示中键
        :param clicks: 点击次数，默认为 1
        :param interval: 每次点击之间的间隔时间（秒），默认为 0.2 秒
    """
    original_pos = pyautogui.position()
    pyautogui.click(x, y, button=button, clicks=clicks, interval=interval)
    pyautogui.moveTo(original_pos)

